3 Дорожная карта эволюции версий

Глава 3: Дорожная карта эволюции версий

В данной главе определяется дорожная карта эволюции версий протокола CAP, устанавливается функциональный объём версии v1 и исключения, правила именования версий и стратегия совместимости, а также описывается процесс публикации от черновика до официальной версии. Дорожная карта версий обеспечивает чёткое руководство для итеративной разработки протокола и сотрудничества сообщества.

3.1 Функциональный объём версии v1

Версия v1 протокола CAP сосредоточена на создании полной базовой структуры управления полномочиями терминала и включает следующие 6 основных возможностей:

  1. Офлайн-авторизация (Authorization_Descriptor): Основной механизм версии v1. Реализация полного управления жизненным циклом Authorization_Descriptor, включая выдачу, локальное хранение, проверку, отзыв и обновление. Терминал в офлайн-режиме может самостоятельно выполнять проверку авторизации с использованием локально хранящегося Authorization_Descriptor, обеспечивая базовую доступность Fay в среде без сети. Версия v1 реализует полную модель цепочки доверия и механизм локального списка отзыва.

  2. Онлайн-билеты (Trusted_Ticket): Дополнительный механизм версии v1. Реализация возможностей выдачи авторизации в реальном времени и запроса статуса отзыва в сетевой среде, поддержка преобразования Trusted_Ticket в локальный формат Authorization_Descriptor, а также стратегия плавной деградации от онлайн к офлайн. Версия v1 обеспечивает согласованную работу онлайн-билетов и офлайн-авторизации.

  3. Управление сеансами (Session lifecycle): Реализация полного управления жизненным циклом сеансов управления, охватывающего три этапа: создание, активный и завершение. Версия v1 поддерживает привязку Session к Terminal_Resource один к одному, реализует три способа завершения сеанса: активное освобождение, завершение по тайм-ауту и завершение по отзыву.

  4. Стратегия передачи управления (Handover_Policy): Реализация возможности передачи управления между несколькими сторонами, охватывающая сценарии передачи между Fay, а также между Fay и пользователями-людьми. Версия v1 поддерживает три типа стратегий (скрипт правил приоритета, решение AI-модели в реальном времени, решение пользователя-человека), гарантирует атомарность процесса передачи и реализует механизм отката по тайм-ауту.

  5. Обнаружение активности (Liveness_Detection): Реализация механизма обнаружения активности сеансов на основе сочетания постоянных соединений и heartbeat на уровне приложения. Версия v1 поддерживает логику двойного определения (одновременное выполнение условий разрыва постоянного соединения и тайм-аута heartbeat), настраиваемые интервалы heartbeat и пороги тайм-аута, а также автоматическое завершение недействительных сеансов и освобождение ресурсов.

  6. Режимы доступа к ресурсам (Resource_Access_Mode): Реализация многоуровневого управления доступом к ресурсам по типу операции, поддержка четырёх режимов доступа: read, write, execute, configure. Версия v1 реализует полную модель блокировки чтения-записи, поддерживая параллельный доступ нескольких сторон в режиме read и эксклюзивное управление в режимах write, execute и configure.

Указанные 6 основных возможностей составляют полный функциональный набор версии v1, обеспечивая базовую структуру управления полномочиями для безопасного принятия интеллектуальными агентами управления терминалами в экосистеме iFay.

3.2 Функции, явно исключённые из v1

Следующие функции явно не включены в версию v1 и отмечены как кандидаты для будущих версий:

Исключённая функцияОписаниеВерсия-кандидат
Миграция сеансов между терминаламиПеренос активного Session с одного терминала на другой с сохранением непрерывности состояния сеансаv2+
Совместная авторизация нескольких терминаловМеханизм синхронизации состояния авторизации и совместной проверки между несколькими терминаламиv2+
Цепочка делегирования авторизации (Delegation Chain)Механизм каскадной авторизации, при котором Fay делегирует часть полученной авторизации другим Fayv2+
Детализированный контроль доступа к ресурсам (ABAC)Стратегия контроля доступа на основе атрибутов, поддерживающая более сложные условия доступа к ресурсамv2+
Стандартизированный формат журнала аудитаУнифицированный формат вывода журнала аудита (Audit_Logger) и спецификация интерфейса запросовv2+
Спецификация шифрования передачи сообщений протоколаСтандартизированное определение способа шифрования сообщений протокола CAP на транспортном уровне сети и процесса согласования ключейv2+
Распределённый консенсус отзыва офлайн-авторизацииМеханизм достижения консенсуса о статусе отзыва между несколькими терминалами в офлайн-средеv3+
Динамическое повышение разрешений (в рамках Session)Динамическое повышение разрешений доступа в течение жизненного цикла активного Session без создания нового Sessionv3+

Версия v1 следует принципу «сначала создать основу, затем расширять возможности», приоритетно обеспечивая полноту и стабильность 6 основных возможностей, оставляя расширенные функции для последующих итераций версий.

3.3 Правила именования версий и стратегия совместимости

Правила именования версий

Протокол CAP использует формат семантического версионирования (Semantic Versioning): MAJOR.MINOR.PATCH

  • MAJOR (основная версия): Увеличивается при несовместимых существенных изменениях протокола. Например, структурная перестройка формата основных сообщений, фундаментальное изменение процесса проверки авторизации. Изменение основной версии означает, что существующие реализации требуют адаптации
  • MINOR (дополнительная версия): Увеличивается при добавлении обратно совместимых функций или возможностей. Например, добавление нового режима доступа к ресурсам, расширение типов стратегий Handover_Policy. Изменение дополнительной версии не влияет на нормальную работу существующих реализаций
  • PATCH (версия исправления): Увеличивается при обратно совместимых исправлениях ошибок или уточнениях документации. Например, исправление неоднозначных описаний в документации спецификации, дополнение описания обработки граничных случаев

Черновые версии используют идентификатор draft без номера версии. Черновые версии не гарантируют совместимость и могут подвергаться разрушающим изменениям в любое время.

Примеры номеров официально выпущенных версий: 1.0.0, 1.1.0, 1.1.1, 2.0.0

Стратегия совместимости

Стратегия совместимости протокола CAP следует следующим принципам:

  • Обратная совместимость в рамках одной основной версии: В рамках одной MAJOR версии реализация новой версии протокола должна быть способна обрабатывать сообщения протокола старой версии. Например, терминал, реализующий v1.2.0, должен быть способен обрабатывать Authorization_Descriptor формата v1.0.0
  • Отсутствие гарантии совместимости между основными версиями: Обратная совместимость между различными MAJOR версиями не гарантируется. При увеличении основной версии спецификация протокола явно перечисляет все разрушающие изменения и руководство по миграции
  • Согласование версий Schema и протокола: Каждая версия протокола соответствует версии Schema; файлы Schema хранятся в каталоге, названном по номеру версии протокола (например, schema/2025-10-25/), обеспечивая чёткую и отслеживаемую связь версий
  • Объявление минимальной поддерживаемой версии: Реализация протокола может объявить минимальную поддерживаемую версию протокола; сообщения протокола ниже этой версии будут отклонены

3.4 Процесс публикации от черновика до официальной версии

Публикация протокола CAP от черновика до официальной версии следует следующему процессу:

Этап первый: Черновик (Draft)

  • Спецификация протокола и определения Schema хранятся в каталоге draft/ (например, schema/draft/, specification/draft/)
  • На этапе черновика допускаются частые разрушающие изменения без гарантии совместимости
  • Содержимое черновика принимает обратную связь и рецензирование от сообщества, непрерывно итеративно улучшаясь
  • Документация и Schema на этапе черновика могут обновляться в любое время без соблюдения правил увеличения номера версии

Этап второй: Кандидат на выпуск (Release Candidate)

  • Когда содержимое черновика стабилизируется, начинается этап кандидата на выпуск
  • Версии кандидата на выпуск используют суффикс -rc.N (например, 1.0.0-rc.1)
  • На этапе кандидата на выпуск принимаются только исправления ошибок и уточнения документации, новые функции не принимаются
  • Версии кандидата на выпуск должны пройти полную тестовую верификацию, включая проверку Schema, проверку структурной эквивалентности многоязычной документации и тестирование свойств

Этап третий: Официальный выпуск (Release)

  • После достаточной верификации версии кандидата на выпуск суффикс -rc.N удаляется, и версия становится официальной
  • Спецификация протокола и определения Schema официальной версии копируются из каталога draft/ в каталог, названный по дате версии (например, schema/2025-10-25/)
  • После официального выпуска спецификация протокола и определения Schema данной версии больше не изменяются (immutable); любые изменения публикуются через новую версию
  • При официальном выпуске документация архитектурного плана и спецификации протокола на всех 9 языках должна быть синхронно завершена и пройти верификацию структурной эквивалентности

Этап четвёртый: Сопровождение (Maintenance)

  • После официального выпуска версия переходит в этап сопровождения, принимая только исправления уровня PATCH
  • При выпуске новой MAJOR или MINOR версии старая версия переходит в период ограниченного сопровождения и в конечном итоге помечается как устаревшая (deprecated)
  • Документация и определения Schema устаревших версий сохраняются в репозитории для исторической справки, но больше не принимают обновлений